export type Null = null
export type Nullable<T> = T | Null
export type Nil = undefined | null
export type Nilable<T> = T | Nil
export type Dict<T = any> = Record<string, T>
export type Fn<A extends any[] = any[], R = any> = A extends [] ? () => R : (...args: A) => R
